package com.example.springinitialization.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springinitialization.pojo.dto.userDto.*;
import com.example.springinitialization.pojo.response.user.UserResponse;
import com.example.springinitialization.pojo.vo.User;
import com.example.springinitialization.utils.DeleteDto;
import com.example.springinitialization.utils.token.LoginUser;

import java.util.List;

/**
* @author centos7
* @description 针对表【user】的数据库操作Service
* @createDate 2023-08-08 00:28:29
*/
public interface UserService extends IService<User> {

    /**
     * 获取用户列表
     * @return
     */
    List<UserResponse> getUserList();

    /**
     * 根据查询参数获取用户列表
     * @param userQueryDto
     * @return
     */
    List<UserResponse> getUserListByParams(UserQueryDto userQueryDto);

    /**
     * 根据id获取用户
     * @param id
     * @return
     */
    UserResponse getUserById(Long id);

    /**
     * 新增用户
     * @param userAddDto
     */
    void AddUser(UserAddDto userAddDto);

    /**
     * 更新用户信息
     * @param userUpdateDto
     */
    void UpdateUser(UserUpdateDto userUpdateDto);

    /**
     * 根据id删除用户
     * @param deleteDto
     */
    void delUser(DeleteDto deleteDto);

    /**
     * 注册
     * @param userResisterDto
     * @return
     */
    boolean resister(UserResisterDto userResisterDto);

    LoginUser login(UserLoginDto userLoginDto);

    boolean logout();
}
